﻿using System;
using System.Web.Services;
using DCS.Domain;
using DCS.Domain.Entities;

namespace DCS.Service.Interfaces
{
    ///<summary>
    /// Интерфейс для центрального сервиса системы DCS.
    ///</summary>
    public interface ICentralService
    {
        ///<summary>
        /// Возвращает многопорционную задачу для рассчёта.
        /// Метод используется промежуточными серверами для масштабирования вычислений.
        ///</summary>
        ///<returns>Задача, состоящая из нескольких порций.</returns>
        [WebMethod]
        MultiPortionTaskPack GetMultiPortionTaskPack();

        ///<summary>
        /// Устанавливает результат рассчёта многопорционной задачи.
        ///</summary>
        ///<param name="results">Результаты рассчёта.</param>
        ///<param name="client">Идентификатор клиента, выполнившего рассчёт.</param>
        [WebMethod]
        void SetMultiPortionResult(TaskPortionResult[] results, Guid client);
    }
}
